package com.huike.stock_analysis.service;

import java.text.DecimalFormat;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.huike.stock_analysis.dao.FinanceDao;
import com.huike.stock_analysis.entity.DebtInfo;


@Service
public class DebtService {
	//注入dao
	@Autowired
	private FinanceDao financeDao;
	
	//保存数据库查询到的数据
	private  List<DebtInfo> debtInfos;
	//保留四位小数
	private DecimalFormat df = new DecimalFormat("0.0000");
	
	
	//获取list
	private void getList(String code) {
		
			//System.out.print("111");
			debtInfos = financeDao.queryDebt(code);
		
	}
	
	/**
	 * 
	 * @param code
	 * @return Map<String, String> 返回的数据 k为日期 v为对应的数据
	 *  资产负债率
	 */
	public Map<String, String> assetsDebtRatio(String code) {
		//创建返回map
		Map<String, String> map = new LinkedHashMap<>();
		
		getList(code);
		
		//遍历查询结果
		for(DebtInfo debtInfo : debtInfos) {
			
			map.put(debtInfo.getDate().toString(), df.format(debtInfo.getAssetsDebtRatio()) + "," + df.format(debtInfo.getAssetsDebtRatioOfSame()));
		}
		
		return map;
	}
	
	/**
	 * 
	 * @param code
	 * @return Map<String, Double> 返回的数据 k为日期 v为对应的数据
	 * 流动比率
	 */
	public Map<String, String> flowRatio(String code) {
		//创建返回map
		Map<String,String> map = new LinkedHashMap<>();
		getList(code);
		//遍历查询结果
		for(DebtInfo debtInfo : debtInfos) {
			
			map.put(debtInfo.getDate().toString(), df.format(debtInfo.getFlowRatio())
					+ ',' + df.format(debtInfo.getFlowRatioOfSame()) + "," + df.format(debtInfo.getSpendRatio()));
		}
		
		return map;
	}
	
	/**
	 * 
	 * @param code
	 * @return Map<String, String> 返回的数据 k为日期 v为对应的数据
	 * 速动比率
	 */
	/*
	public Map<String, String> speedRatio(String code) {
		//创建返回map
		Map<String, String> map = new LinkedHashMap<>();
		getList(code);
		//遍历查询结果
		for(DebtInfo debtInfo : debtInfos) {
			
			map.put(debtInfo.getDate().toString(), df.format(debtInfo.getSpendRatio()));
		}
		
		return map;
	}
	*/
	
	/**
	 * 
	 * @param code
	 * @return String 日期最近的一个
	 *  速动比率
	 */
	public String equityRatio(String code) {
		getList(code);
		DebtInfo debtInfo = debtInfos.get(debtInfos.size() - 1);
		
		
		return df.format(debtInfo.getEquityRatio());
		
	}
	
	/**
	 * 
	 * @param code
	 * @return String  日期最近的一个
	 *  现金比率
	 */
	public String cashRatioRatio(String code) {
		getList(code);
		DebtInfo debtInfo = debtInfos.get(debtInfos.size() - 1);
		
		
		return df.format(debtInfo.getCashRatio());
		
	}
	
	/**
	 * 
	 * @param code
	 * @return String 日期最近的一个
	 *  长期负债比率
	 */
	public String longTermDebtRatio(String code) {
		getList(code);
		DebtInfo debtInfo = debtInfos.get(debtInfos.size() - 1);
		
		
		return df.format(debtInfo.getLongTermDebtRatio());
	}
	
	/**
	 * 
	 * @param code
	 * @return String 日期最近的一个
	 *  资产固定化比率
	 */
	public String fixedAssetsRaito(String code) {
		getList(code);
		DebtInfo debtInfo = debtInfos.get(debtInfos.size() - 1);
		
		
		return df.format(debtInfo.getFixedAssetsRaito());
	}
		
		
		
}
